package com.apps.java.javanote02;

public class _11重载和重写 {
    /**
     *  一、方法重载（Overloading）
     *  	1.重载发生在本类，方法名相同，参数列表不同，与返回值无关。
     *
     * 		2.指同一个类中定义的多个方法之间的关系，满足下列条件的多个方法相互构成重载
     *			a.多个方法在同一个类中
     *			b.多个方法具有相同的方法名
     *			c.多个方法的参数不同，类型不同或数量不同
     * 		3.方法重载的特点：
     * 			a.重载仅对应方法的定义，与方法的调用无关，调用方式参照标准格式
     * 			b.重载仅针对同一个类中方法的名称与参数进行识别，与返回值无关，换句话说不能通过返回值来判定两个方法时候互相构成重载
     *
     * 	二、方法重写（Overriding）
     *  	1.概述：子类中出现了和父类中一模一样的方法声明
     *   	2.应用：当子类需要父类的功能，而功能主体子类有自己特有内容时，可以重写父类中的方法，这样既沿袭了父类的功能，又定义了子类特有的内容。
     *   	3.Override：是一个注解，可以帮助我们检查重写方法的方法声明的正确性
     *   	4.特征：
     *   		a.方法名必须相同，返回值类型必须相同。
     *   		b.参数列表必须相同。
     *   		c.访问权限不能比父类访问权限低。
     *   		d.构造方法不能被重写。
     *   	5.注意事项：
     *   		a.私有方法不能被重写（父类私有成员子类是不能继承的）
     *   		b.子类方法访问权限不能比父类方法访问权限低（public>默认>私有）
     *
     *  三、重载和重写的区别
     *   				重写（Overriding）			重载（Overloading）
     *   	类的数量：		父子类、接口与实现类				本类
     *		方法名称：			一致						一致
     *		参数列表：		    一定不能修改					必须修改
     *		返回类型：		    一定不能修改					可以修改
     *		异常：		可以减少或删除，但不能扩展			可以修改
     *
     *
     *
     */



	/*
	//重载
	public int age;
	public String name;
	public String address;

	public void student(int age){
		this.age = age;
		System.out.println("年龄:"+age);
	}

	public void student(String name,String address){
		this.name = name;
		System.out.println("姓名："+name+"\n地址："+address);
	}

	public static void main(String[] args) {
		_11重载和重写 s1 = new _11重载和重写();

		s1.student(10);
		s1.student("王饱饱", "国家教育保护中心");

	}
	*/

}
